/*++
Copyright (c) 1990-2000    Microsoft Corporation All Rights Reserved

Module Name:

    public.h

Abstract:

    This module contains the common declarations shared by driver
    and user applications.

Environment:

    user and kernel

--*/

//
// Define an Interface Guid for bus enumerator class.
// This GUID is used to register (IoRegisterDeviceInterface)
// an instance of an interface so that enumerator application
// can send an ioctl to the bus driver.
//
//
//DEFINE_GUID (GUID_DEVINTERFACE_BUSENUM_TOASTER,
//        0xD35F7840, 0x6A0C, 0x11d2, 0xB8, 0x41, 0x00, 0xC0, 0x4F, 0xAD, 0x51, 0x71);
////  {D35F7840-6A0C-11d2-B841-00C04FAD5171}
//
////
//// Define an Interface Guid for toaster device class.
//// This GUID is used to register (IoRegisterDeviceInterface)
//// an instance of an interface so that user application
//// can control the toaster device.
////
//
//DEFINE_GUID (GUID_DEVINTERFACE_TOASTER,
//        0x781EF630, 0x72B2, 0x11d2, 0xB8, 0x52, 0x00, 0xC0, 0x4F, 0xAD, 0x51, 0x71);
////{781EF630-72B2-11d2-B852-00C04FAD5171}
//
////
//// Define a Setup Class GUID for Toaster Class. This is same
//// as the TOASTSER CLASS guid in the INF files.
////
//
//DEFINE_GUID (GUID_DEVCLASS_TOASTER,
//        0xB85B7C50, 0x6A01, 0x11d2, 0xB8, 0x41, 0x00, 0xC0, 0x4F, 0xAD, 0x51, 0x71);
////{B85B7C50-6A01-11d2-B841-00C04FAD5171}
//
////
//// Define a WMI GUID to get busenum info.
////
//
//DEFINE_GUID (TOASTER_BUS_WMI_STD_DATA_GUID,
//        0x0006A660, 0x8F12, 0x11d2, 0xB8, 0x54, 0x00, 0xC0, 0x4F, 0xAD, 0x51, 0x71);
////{0006A660-8F12-11d2-B854-00C04FAD5171}
//
////
//// Define a WMI GUID to get toaster device info.
////
//
//DEFINE_GUID (TOASTER_WMI_STD_DATA_GUID,
//        0xBBA21300L, 0x6DD3, 0x11d2, 0xB8, 0x44, 0x00, 0xC0, 0x4F, 0xAD, 0x51, 0x71);
//
////
//// Define a WMI GUID to represent device arrival notification WMIEvent class.
////
//
//DEFINE_GUID (TOASTER_NOTIFY_DEVICE_ARRIVAL_EVENT,
//        0x1cdaff1, 0xc901, 0x45b4, 0xb3, 0x59, 0xb5, 0x54, 0x27, 0x25, 0xe2, 0x9c);
//// {01CDAFF1-C901-45b4-B359-B5542725E29C}
//

//
// GUID definition are required to be outside of header inclusion pragma to avoid
// error during precompiled headers.
//

#ifndef __PUBLIC_H_22345__
#define __PUBLIC_H_22345__

//#define BUS_HARDWARE_IDS L"{B85B7C50-6A01-11d2-B841-00C04FAD5171}\\MsToaster\0"
//#define BUS_HARDWARE_IDS_LENGTH sizeof (BUS_HARDWARE_IDS)
//
//#define BUSENUM_COMPATIBLE_IDS L"{B85B7C50-6A01-11d2-B841-00C04FAD5171}\\MsCompatibleToaster\0"
//#define BUSENUM_COMPATIBLE_IDS_LENGTH sizeof(BUSENUM_COMPATIBLE_IDS)

#define BJ_DISPLAY_HARDWARE_IDS L"{6C2DAA24-08C9-4BDF-8791-68DA023EDA11}\\Bj_Disp\0"
#define BJ_DISPLAY_HARDWARE_IDS_LEN sizeof (BJ_DISPLAY_HARDWARE_IDS)

#define BJ_DISPLAY_COMPATIBLE_IDS L"{6C2DAA24-08C9-4BDF-8791-68DA023EDA11}\\Bj_Disp_Compatible\0"
#define BJ_DISPLAY_COMPATIBLE_IDS_LEN sizeof (BJ_DISPLAY_COMPATIBLE_IDS)

//
//
//#define FILE_DEVICE_BUSENUM         FILE_DEVICE_BUS_EXTENDER
//
//#define BUSENUM_IOCTL(_index_) \
//    CTL_CODE (FILE_DEVICE_BUSENUM, _index_, METHOD_BUFFERED, FILE_READ_DATA)
//
//#define IOCTL_BUSENUM_PLUGIN_HARDWARE               BUSENUM_IOCTL (0x0)
//#define IOCTL_BUSENUM_UNPLUG_HARDWARE               BUSENUM_IOCTL (0x1)
//#define IOCTL_BUSENUM_EJECT_HARDWARE                BUSENUM_IOCTL (0x2)
//#define IOCTL_TOASTER_DONT_DISPLAY_IN_UI_DEVICE     BUSENUM_IOCTL (0x3)
//
//
//  Data structure used in PlugIn and UnPlug ioctls
////
//
//typedef struct _BUSENUM_PLUGIN_HARDWARE
//{
//    //
//    // sizeof (struct _BUSENUM_HARDWARE)
//    //
//    IN ULONG Size;
//
//    //
//    // Unique serial number of the device to be enumerated.
//    // Enumeration will be failed if another device on the
//    // bus has the same serail number.
//    //
//
//    IN ULONG SerialNo;
//
//    //
//    // An array of (zero terminated wide character strings). The array itself
//    //  also null terminated (ie, MULTI_SZ)
//    //
//    #pragma warning(disable:4200)  // nonstandard extension used
//
//    IN  WCHAR   HardwareIDs[];
//
//    #pragma warning(default:4200)
//
//} BUSENUM_PLUGIN_HARDWARE, *PBUSENUM_PLUGIN_HARDWARE;
//
//typedef struct _BUSENUM_UNPLUG_HARDWARE
//{
//    //
//    // sizeof (struct _REMOVE_HARDWARE)
//    //
//
//    IN ULONG Size;
//
//    //
//    // Serial number of the device to be plugged out
//    //
//
//    ULONG   SerialNo;
//
//    ULONG Reserved[2];
//
//} BUSENUM_UNPLUG_HARDWARE, *PBUSENUM_UNPLUG_HARDWARE;
//
//typedef struct _BUSENUM_EJECT_HARDWARE
//{
//    //
//    // sizeof (struct _EJECT_HARDWARE)
//    //
//
//    IN ULONG Size;
//
//    //
//    // Serial number of the device to be ejected
//    //
//
//    ULONG   SerialNo;
//
//    ULONG Reserved[2];
//
//} BUSENUM_EJECT_HARDWARE, *PBUSENUM_EJECT_HARDWARE;

#endif

